package util;

import java.util.ArrayList;

public class ByteUtil {
	/**
	 * 整型转换为4位字节数组
	 * 
	 * @param intValue
	 * @return
	 */
	public static byte[] intToByteArray(int intValue) {
		byte[] bytes = new byte[4];
		for (int i = 0; i < 4; i++) {
			bytes[i] = (byte) (intValue >> 8 * (3 - i) & 0xFF);
		}
		return bytes;
	}

	/**
	 * 4位字节数组转换为整型
	 * 
	 * @param b
	 * @return
	 */
	public static int byteArrayToInt(byte[] byteArray) {
		int intValue = 0;
		for (int i = 0; i < byteArray.length; i++) {
			intValue += (byteArray[i] & 0xFF) << (8 * (3 - i));
		}
		return intValue;
	}

	/**
	 * 字节转换成二进制字符传
	 * 
	 * @param byteValue
	 * @return
	 */
	public static String byteToBinString(byte byteValue) {
		// 只取出前4位
		String b0 = new Integer((int) (byteValue & 0x1)).toString();
		byteValue = (byte) (byteValue >> 1);
		String b1 = new Integer((int) (byteValue & 0x1)).toString();
		byteValue = (byte) (byteValue >> 1);
		String b2 = new Integer((int) (byteValue & 0x1)).toString();
		byteValue = (byte) (byteValue >> 1);
		String b3 = new Integer((int) (byteValue & 0x1)).toString();
		byteValue = (byte) (byteValue >> 1);
		return b3 + b2 + b1 + b0;
	}

	public static byte[] ArrayListToByteArray(ArrayList<Byte> arrayList) {
		byte[] byteArray = new byte[arrayList.size()];
		for (int i = 0; i < byteArray.length; i++) {
			byteArray[i] = arrayList.get(i).byteValue();
		}
		return byteArray;
	}

}